#include <bits/stdc++.h>
using namespace std;
#include "testlib.h"

using T = tuple<int, int, int>;

int main() {
	registerValidation();
	int n = inf.readInt(2, 2000);
	inf.readSpace();
	int k = inf.readInt(1, n - 1);
	inf.readEoln();
	inf.readEof();
	if(k == 1 or k == n - 1 or k == 2 and n & 1) {
		puts("No");
		return 0;
	}
	vector<T> res;
	if(k == 2) {
		for(int i = 2; i <= n; i++) {
			if(i & 1)
				res.push_back(T(i - 1, i, -1000000000));

			else
				res.push_back(T(i - 1, i, 999999999));
		}
	} else {
		for(int i = 1; i <= k - 2; i++) res.push_back(T(i, i + 1, 0));
		res.push_back(T(k - 1, k, -1000000000));
		for(int i = k + 1; i <= n; i++) res.push_back(T(k, i, 999999999));
	}
	puts("Yes");
	for(const auto &[u, v, d] : res) printf("%d %d %d\n", u, v, d);
	return 0;
}