#include <stdio.h>

#include <memory.h>


#define mod 1000000


int cache[ 101 ][ 101 ][ 2 ];


template< int order >

int solve( int lo, int hi )

{

    if( !lo && !hi )

        return  1;


    int& ret = cache[ lo ][ hi ][ order ];


    if( ret == -1 )

    {

        ret = 0;

        const int end = order ? hi : lo;

        const int dir = order ? +1 : -1;

        lo -= !order;

        hi -=  order;

        for( int i = 0; i < end; ++i )

            ret = ( ret + solve< !order >( lo + i * dir, hi + i * -dir ) ) % mod;

    }

    return ret;

}


int main()

{

    int n;


    scanf( "%d", &n );

    int ans = n;


    memset( cache, -1, sizeof cache );


    if( n > 2 )

    {

        ans = 0;

        const int m = n - 1;

        for( int y = 1; y <= n; ++y )

            for( int x = 1; x <= n; ++x )

                if( y < x )

                    ans = ( ans + solve< 0 >( x - 2, n - x ) ) % mod;

                else if( y > x )

                    ans = ( ans + solve< 1 >( x - 1, m - x ) ) % mod;

    }


    printf( "%d ", ans );


    return 0;

}


뭐 트릭 좀 더 부리면 확 줄일 수 있겠는데 급귀찮아졌다.