Go: package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
	"time"
)

var sc = bufio.NewScanner(os.Stdin)

//Sliceconvtoi ...
func Sliceconvtoi() []int {
	strs := strings.Split(sc.Text(), " ")

	var ints []int
	var x int

	for _, s := range strs {
		x, _ = strconv.Atoi(s)
		ints = append(ints, x)
	}

	return ints
}

func main() {
	for sc.Scan() {
		var dt string
		i := Sliceconvtoi()
		t := time.Date(2017, 9, i[0], 0, 0, 0, 0, time.Local)

		switch t.Weekday() {
		case time.Monday:
			dt = "mon"
		case time.Tuesday:
			dt = "tue"
		case time.Wednesday:
			dt = "wed"
		case time.Thursday:
			dt = "thu"
		case time.Friday:
			dt = "fri"
		case time.Saturday:
			dt = "sat"
		case time.Sunday:
			dt = "sun"
		default:
		}

		fmt.Println(dt)
	}

}

C++: #include<stdio.h>
int main(void)
{
	int x;
	scanf("%d",&x);
	if(x==4||x==11||x==18||x==25)			printf("mon\n");
	else if(x==5||x==12||x==19||x==26)		printf("tue\n");
	else if(x==6||x==13||x==20||x==27)		printf("wed\n");
	else if(x==7||x==14||x==21||x==28)		printf("thu\n");
	else if(x==1||x==8||x==15||x==22||x==29)		printf("fri\n");
	else if(x==2||x==9||x==16||x==23||x==30)		printf("sat\n");
	else if(x==3||x==10||x==17||x==24)		printf("sun\n");
	return 0;
}

C++: #include <iostream>
using namespace std;

int main() {
	int X;
	cin>>X;
		X=9-X;
		if(X<0){
			X=X*-1;
		}
		for(int i=0;i<10;i++){
			if(X<8){
				break;
			}
			X=X-7;
		}
		switch(X){
		case 0:cout<<"sat"<<endl;
			break;
		case 1:cout<<"fri"<<endl;
			break;
		case 2:cout<<"thu"<<endl;
			break;
		case 3:cout<<"wed"<<endl;
			break;
		case 4:cout<<"tue"<<endl;
			break;
		case 5:cout<<"mon"<<endl;
			break;
		case 6:cout<<"sun"<<endl;
			break;
		case 7:cout<<"sat"<<endl;
			break;
		}
	return 0;
}

C++: #include <iostream>
using namespace std;

int main(){
    int x;
    cin >> x;

    switch(x%7){
    case 0:
        cout << "thu" << endl;
        break;
    
    case 1:
        cout << "fri" << endl;
        break;

    case 2:
        cout << "sat" << endl;
        break;

    case 3:
        cout << "sun" << endl;
        break;

    case 4:
        cout << "mon" << endl;
        break;
    
    case 5:
        cout << "tue" << endl;
        break;
    
    case 6:
        cout << "wed" << endl;
        break;
    
    default:
        break;
    }

    return 0;
}

C++: #include <iostream>
using namespace std;
int main(void){

    string D[] = {"thu", "fri", "sat", "sun", "mon", "tue", "wed"};
  int x; cin >> x;
  cout << D[x%7] << endl;

}

C++: #include "bits/stdc++.h"

using namespace std;
using uint = unsigned int;
using int64 = long long;
using i64 = int64;
using uint64 = unsigned long long;
using vint = vector<int>;
using vint64 = vector<int64>;
template<typename T>
using p_que = priority_queue<T>;
#define rep(i,N) for(int i=0;i<(int)(N);++i)
#define rep1(i,N) for(int i=1;i<=(int)(N);++i)
#define fs first
#define sc second
#define eb emplace_back
#define all(x) x.begin(),x.end()

template<typename T>
vector<T> make_v(size_t a, T b) { return vector<T>(a, b); }
template<typename... Ts>
auto make_v(size_t a, Ts... ts) {
	return vector<decltype(make_v(ts...))>(a, make_v(ts...));
}

template<class T> ostream& operator<<(ostream& os, const vector<T>& v) {
	os << "[";
	for (auto& e : v) os << e << ", ";
	return os << "]";
}

template<class T, class U> ostream& operator<<(ostream& os, const pair<T, U> p) {
	return os << "P(" << p.first << ", " << p.second << ")";
}

template<class T, class U> ostream& operator<<(ostream& os, const map<T, U>& mp) {
	os << "{";
	for (auto& e : mp) os << e << " ";
	return os << "}";
}

void Main();
signed main() {
	cin.tie(nullptr);
	ios::sync_with_stdio(false);
	cout << fixed << setprecision(20);
	Main();
}

/* Cut from here! */

#define int long long

void Main() {
	int x; cin >> x;
	string ans[] = {
		"fri","sat","sun","mon","tue","wed","thu",
		"fri","sat","sun","mon","tue","wed","thu",
		"fri","sat","sun","mon","tue","wed","thu",
		"fri","sat","sun","mon","tue","wed","thu",
		"fri","sat","sun","mon","tue","wed","thu",
	};
	cout << ans[x-1] << endl;
}

C++: 
	#include<iostream>
using namespace std;
int main(){
	int X;
	cin >> X;
	if (X % 7 == 0){
		cout <<"thu" << endl;
	}
	if (X % 7 ==1){
		cout <<"fri" << endl;
	}
	if (X % 7 == 2){
		cout << "sat" << endl;
	}
	if (X % 7 == 3){
		cout << "sun" << endl;
	}
	if (X % 7 == 4){
		cout << "mon" << endl;
	}
	if (X % 7 == 5){
		cout << "tue" << endl;
	}
	if (X % 7 == 6){
		cout << "wed" << endl;
	}
	return 0;
}

C++: #include <bits/stdc++.h>
using namespace std;
#define rep(i, n)  for(long long i=0;i<(long long)(n);i++)
#define REP(i,k,n) for(long long i=k;i<(long long)(n);i++)
#define all(a) a.begin(),a.end()
#define pb emplace_back
#define eb emplace_back
#define lb(v,k) (lower_bound(all(v),k)-v.begin())
#define ub(v,k) (upper_bound(all(v),k)-v.begin())
#define fi first
#define se second
#define pi M_PI
#define PQ(T) priority_queue<T>
#define SPQ(T) priority_queue<T,vector<T>,greater<T>>
#define dame(a) {out(a);return 0;}
#define decimal cout<<fixed<<setprecision(15);
#define dupli(a) a.erase(unique(all(a)),a.end())
typedef long long ll;
typedef pair<ll,ll> P;
typedef tuple<ll,ll,ll> PP;
typedef tuple<ll,ll,ll,ll> PPP;
typedef multiset<ll> S;
using vi=vector<ll>;
using vvi=vector<vi>;
using vvvi=vector<vvi>;
using vvvvi=vector<vvvi>;
using vp=vector<P>;
using vvp=vector<vp>;
using vb=vector<bool>;
using vvb=vector<vb>;
const ll inf=1001001001001001001;
const ll INF=1001001001;
const ll mod=1000000007;
const double eps=1e-10;
template<class T> bool chmin(T&a,T b){if(a>b){a=b;return true;}return false;}
template<class T> bool chmax(T&a,T b){if(a<b){a=b;return true;}return false;}
template<class T> void out(T a){cout<<a<<'\n';}
template<class T> void outp(T a){cout<<'('<<a.fi<<','<<a.se<<')'<<'\n';}
template<class T> void outvp(T v){rep(i,v.size())cout<<'('<<v[i].fi<<','<<v[i].se<<')';cout<<'\n';}
template<class T> void outvvp(T v){rep(i,v.size())outvp(v[i]);}
template<class T> void outv(T v){rep(i,v.size()){if(i)cout<<' ';cout<<v[i];}cout<<'\n';}
template<class T> void outvv(T v){rep(i,v.size())outv(v[i]);}
template<class T> bool isin(T x,T l,T r){return (l)<=(x)&&(x)<=(r);}
template<class T> void yesno(T b){if(b)out("yes");else out("no");}
template<class T> void YesNo(T b){if(b)out("Yes");else out("No");}
template<class T> void YESNO(T b){if(b)out("YES");else out("NO");}
template<class T> void noyes(T b){if(b)out("no");else out("yes");}
template<class T> void NoYes(T b){if(b)out("No");else out("Yes");}
template<class T> void NOYES(T b){if(b)out("NO");else out("YES");}
void outs(ll a,ll b){if(a>=inf-100)out(b);else out(a);}
ll gcd(ll a,ll b){if(b==0)return a;return gcd(b,a%b);}
ll modpow(ll a,ll b){ll res=1;a%=mod;while(b){if(b&1)res=res*a%mod;a=a*a%mod;b>>=1;}return res;}

int main(){
    vector<string> v={"mon","tue","wed","thu","fri","sat","sun"};
    ll n;cin>>n;
    out(v[(n+3)%7]);
}

C++: #include<iostream>
using namespace std;

int main(){
  int X,Y;
  cin>>X;
  X=X+3;
  X=X%7;
  switch(X){
    case 0: cout << "mon" << endl;  break;
        case 1: cout << "tue" << endl;  break;
        case 2: cout << "wed" << endl;  break;
        case 3: cout << "thu" << endl;  break;
        case 4: cout << "fri" << endl;  break;
        case 5: cout << "sat" << endl;  break;
        case 6: cout << "sun" << endl;  break;
    }
  }

C++: #include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <cmath>
using namespace std;
int main(void) {
  int x,pos;
  cin >> x;
  string weeks[] = { "sat", "sun", "mon", "tue", "wed", "thu", "fri" };
  pos = abs(x-9)%7;
  if (x < 9 && pos > 0) {
    pos = 7 - pos;
  }
  cout << weeks[pos] << endl;

  return 0;
}