#include <stdio.h>
#include <time.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <map> 
#include <string>
#include <vector>  
#include <iostream> 
#include <sstream> 
#include <queue> 
#include <algorithm>

using namespace std;
 
#define ll long long
#define PB 		push_back
#define FOR(a,start,end) 	for(int a=int(start); a<int(end); a++)
#define INF 		INT_MAX
#define SORT(a) 	sort(a.begin(),a.end()) 
#define CL(a,x) 		memset(a,x,sizeof(a))
#define REP(a,x)	for(int a=0;a<x;a++)
#define REP1(a,x)	for(int a=1;a<=x;a++)
#define MP 		make_pair

 
 
typedef vector<int>     vi;
typedef pair<int,int>     pii; 
typedef vector<string> vs;
typedef vector<pii> vii;
typedef vector<vector<int> > vvi;
typedef vector<vector<string> > vvs;
typedef vector<pair<string,string> > vss;
typedef pair<string,string> pss; 
typedef pair<int,pii> piii;
typedef vector<piii> viii;
typedef vector<vector<pii> > vvii;
typedef vector<vvi> vvvi;

int m,z,i,j,k,n,a,b,c;
vi vk,va,vb,vk0,vkz;
vvi vvk,vvp;
vii vp;

priority_queue <vi> pq,pq0;

int main() {   
//	freopen( "c:\\wojtek\\uva\\pa\\tak\\4.in", "rt", stdin);  
	
	//pi=2*acos(0.0);
	
	cin>>n>>m; 
	if(n<=m)
		cout<<"TAK"<<endl;
	else {
		vk.assign(3,0);
		vvk.assign(n,vk);
		for(i=0;i<n;i++){
			cin>>a>>b>>c;
		
			vvk[i][0]=a;
			vvk[i][1]=b;
			vvk[i][2]=c;
		}
		
		vp.clear();
		va.clear();
		SORT(vvk);
		
		for(i=0;i<m;i++){
		
			vp.push_back(MP(vvk[i][0]+vvk[i][2],vvk[i][1]-vvk[i][0]-vvk[i][2]));
			va.push_back(vvk[i][0]);
					
		}
		
		while(!pq.empty())
			pq.pop();

		vk.assign(3,0);
		for(;i<n;i++){
			
			vk[0]=-vvk[i][0];
			vk[1]=vvk[i][1];
			vk[2]=vvk[i][2];
			//vvk[i][0]*=-1;
			pq.push(vk);
		}
		vk0.assign(3,0);
		while(!pq.empty()){
			vk0=pq.top();
			vk0[0]*=-1;
			
			pq.pop();
			z=0;
			
			a=2000000;
			b=-1;
			for(j=0;j<m;j++){
				
				if(vk0[0]>=vp[j].first){
					vp[j].first=vk0[0]+vk0[2];
					vp[j].second=vk0[1]-vk0[0]-vk0[2];
					va[j]=vk0[0];
					z=1;
					break;
				}
				if(vp[j].first+vk0[2]<=vk0[1]){
					if(vp[j].first+vp[j].second<a){		
					
						a=vp[j].first+vp[j].second;
						b=j;
					}
				}
			}
			if(z==1)
				continue;
			if(b>=0){					
									//zostawiamy wiekszą rezerwę !
				if(vp[b].first+vp[b].second<vk0[1]){			//to dodane
					if(va[b]>vk0[0]){
						vk0[0]=va[b];
					}
					vk.assign(3,0);
					vk[0]=vk0[0];
					vk[1]=vp[b].first+vp[b].second;
					vk[2]=vp[b].first-vk0[0];
					va[b]=vk0[0];
					vp[b].first=vk0[0]+vk0[2];
					
					vp[b].second=vk0[1]-vp[b].first;
					vk[0]*=-1;
					pq.push(vk);
				}
				/*
				else {					
					va[b]=vp[b].first;
					vp[b].first+=vk0[2];
					vp[b].second=vk0[1]-vp[b].first;
		//			if(vp[b].second<0)
		//				cout<<"blad"<<endl;
				}
				*/
				else {
					if(va[b]>vk0[0]){
						vk0[0]=va[b];
					}
					vp[b].second+=vp[b].first;
					va[b]=vk0[0]+vk0[2];
					vp[b].first+=vk0[2];
					vp[b].second-=vp[b].first;


				}
				
				z=1;
				continue;
			}
					//spr czy dzielimy
					//wybieramy j z najw zapasem
			b=-1;
			a=-1;
			for(j=0;j<m;j++){
				if(vp[j].second>0){
					
					if(va[j]+vk0[2]<=vk0[1]){
						if(vp[j].second>a){
							a=vp[j].second;
							b=j;
						}
						z=1;
					}
				
				}
			}
			if(z==1){			//dzielimy
				if(vk0[0]<va[b]){
		//			vk0[2]-=va[b]-vk0[0];
					vk0[0]=va[b];
				}
				if(vp[b].second<vk0[2]){		//kawałek
												//kto ma mniejszy zapas
					if(vp[b].second<vk0[1]-vk0[0]-vk0[2]){
						vk0[0]+=vp[b].second;
						vk0[2]-=vp[b].second;
						vp[b].first+=vp[b].second;
						vp[b].second=0;
						va[b]=vp[b].first;
						vk0[0]*=-1;
						pq.push(vk0);
					}
					else {						//to doszło
						vk.assign(3,0);
						vk[0]=vk0[0];
						vk[1]=vp[b].first+vp[b].second;
						vk[2]=vp[b].first-vk0[0];
						va[b]=vk0[0];
						vp[b].first=vk0[0]+vk0[2];
						vp[b].second=vk0[1]-vk0[0]-vk0[2];
						vk[0]*=-1;
						pq.push(vk);
					}

				}

				else {							//całe 
					/*
					vp[b].first+=vk0[2];
					vp[b].second-=vk0[2];
		//			va[b]+=vk0[2];
					va[b]=max(va[b],vk0[0])+vk0[2];
					*/
					//nowe ostatnie
					if(vp[b].first+vp[b].second>vk0[1]){

						va[b]=vk0[0]+vk0[2];
						vp[b].first+=vk0[2];
						vp[b].second-=vk0[2];
						
					}
					else {		
						va[b]=vp[b].first;
						vp[b].first+=vk0[2];
						vp[b].second-=vk0[1]-vp[b].first;
					
					}
					
				}
			}
			else
				break;
		}
				
		if(z==0)
			cout<<"NIE"<<endl;
		else
			cout<<"TAK"<<endl;
	}
		
			

	return 0;

} 
