#include <iostream>
#include <vector>
using namespace std;

int main() {

	long long n;
	cin>>n;
	
	long long sum = (n*(n+1))/2;

	vector<long long> set1;
	vector<long long> set2;
	vector<long long> vis(n+1,0);
	long long maxElement=n;

	if(sum%2 == 1)
	{
		cout<<"NO"<<endl;
	}
	else
	{
		cout<<"YES"<<endl;
		long long set1Sum=0;
		
		//cout<<set1Sum<<" "<<sum/2<<endl;
		
		while(set1Sum < (sum/2))
		{
			
			if((sum/2-set1Sum) > maxElement)
			{
				set1.push_back(maxElement);
				vis[maxElement]=1;
				set1Sum+=maxElement;
				maxElement--;
			}
			else
			{
				set1.push_back(sum/2-set1Sum);
				vis[sum/2-set1Sum]=1;
				set1Sum+=sum/2-set1Sum;
			}
			//cout<<set1Sum<<endl;
		}
		
		for(int i=1;i<=n;i++)
		{
			if(vis[i] == 0)
			{
				set2.push_back(i);
			}
		}
		
		cout<<set1.size()<<endl;
		for(int i=0;i<set1.size();i++)
		{
			if(i == set1.size()-1)
			{
				cout<<set1[i]<<endl;
			}
			else
			{
				cout<<set1[i]<<" ";
			}
		}
		
		cout<<set2.size()<<endl;
		for(int i=0;i<set2.size();i++)
		{
			if(i == set2.size()-1)
			{
				cout<<set2[i]<<endl;
			}
			else
			{
				cout<<set2[i]<<" ";
			}
		}
		
	}

	return 0;
}