1	Watching a nice movie
0	The painting is ugly, will return it tomorrow...
1	One of the best soccer games, worth seeing it
1	Very tasty, not only for vegetarians
1	Super party!
0	Too early to travel..need a coffee
0	Damn..the train is late again...
0	Bad news, my flight just got cancelled.
1	Happy birthday mr. president
1	Just watch it. Respect.
1	Wonderful sunset.
1	Bravo, first title in 2014!
0	Had a bad evening, need urgently a beer.
0	I put on weight again
1	On today's show we met Angela, a woman with an amazing story
1	I fell in love again
0	I lost my keys
1	On a trip to Iceland
1	Happy in Berlin
0	I hate Mondays
1	Love the new book I reveived for Christmas
0	He killed our good mood
1	I am in good spirits again
1	This guy creates the most awesome pics ever 
0	The dark side of a selfie.
1	Cool! John is back!
1	Many rooms and many hopes for new residents
0	False hopes for the people attending the meeting
1	I set my new year's resolution
0	The ugliest car ever!
0	Feeling bored
0	Need urgently a pause
1	Nice to see Ana made it
1	My dream came true
0	I didn't see that one coming
0	Sorry mate, there is no more room for you
0	Who could have possibly done this?
1	I won the challenge
0	I feel bad for what I did		
1	I had a great time tonight
1	It was a lot of fun
1	Thank you Molly making this possible
0	I just did a big mistake
1	I love it!!
0	I never loved so hard in my life
0	I hate you Mike!!
0	I hate to say goodbye
1	Lovely!
1	Like and share if you feel the same
0	Never try this at home
0	Don't spoil it!
1	I love rock and roll
0	The more I hear you, the more annoyed I get
1	Finnaly passed my exam!
1	Lovely kittens
0	I just lost my appetite
0	Sad end for this movie
0	Lonely, I am so lonely
1	Beautiful morning
1	She is amazing
1	Enjoying some time with my friends
1	Special thanks to Marty
1	Thanks God I left on time
1	Greateful for a wonderful meal
1	So happy to be home
0	Hate to wait on a long queue		
0	No cab available
0	Electricity outage, this is a nightmare
0	Nobody to ask about directions
1	Great game!
1	Nice trip
1	I just received a pretty flower
1	Excellent idea
1	Got a new watch. Feeling happy
0	I feel sick
0	I am very tired
1	Such a good taste 
0	Such a bad taste
1	Enjoying brunch
0	I don't recommend this restaurant
1	Thank you mom for supporting me
0	I will never ever call you again
0	I just got kicked out of the contest
1	Smiling
0	Big pain to see my team loosing
0	Bitter defeat tonight
0	My bike was stollen
1	Great to see you!
0	I lost every hope for seeing him again
1	Nice dress!
1	Stop wasting my time
1	I have a great idea
1	Excited to go to the pub
1	Feeling proud
1	Cute bunnies
0	Cold winter ahead
0	Hopless struggle..
0	Ugly hat
1	Big hug and lots of love
1	I hope you have a wonderful celebration
