What's up guys, Mike the Coda here. Today we're gonna go over another lead code problem. This one is going to be finding leaves of a binary tree. So you're given the root of a binary tree and they want you to collect the tree nodes doing this, which is collect all the leaf nodes, remove all of them and then repeat this until the tree is empty. So if you look at this, if you actually look at this example here, let me just quickly paste this. Here, if you look at this example here, what's going on is that we have this tree of one, two, four, five, three and they're gonna just remove all the leaves of this tree. So they're gonna move four, move five, move three and then in the end they get one and two. Then we're just gonna repeat this process until our tree is empty. So we're gonna remove the leaf, so we're gonna move two and then in the end we have one and then we're gonna move one and then the tree is empty. And each time you remove a leaf, they want us to just add that into an array. So yeah, given the root collect all the tree nodes by doing this, collect all the leaf nodes, remove them and then repeat until the tree is empty. So yeah, so you have one, two, three, four, five, we remove four, five, three and then we move two and then we move one. So then the array in the end will be have four, five, three, two and then one. Likewise, if we just have the root one, it's just gonna output an array of one because we remove just one, that'll just be an array of itself. Okay, so how do you do this problem? Excuse me, simply it's just to, you just have to store in each of the nodes with its corresponding height around the leaves with its corresponding height. So what we're gonna do is we're just gonna go through each of the heights and for each of the heights, we're just gonna store the current leaf for that and then yeah, and then in the end, we're just gonna return our array solution in. So here I'll just show you guys what the code of what I mean. So here we have get height, which is just like, actually let's start for the top. So we have vector vector int solution and this is just like a vector vector int. It represents a two-dimensional array. So they want us to have a two-dimensional array here because they want us to return a two-dimensional array with each of the leaves that are removed and each succession. I don't know why that did that, okay. So yeah, so what we're gonna do essentially is that we're going to use recursion, recursively call it and any time we get to the current height, we're just gonna like add a new empty array and in the end, we're just gonna just keep pushing each of the current nodes onto the current height and then yeah, we just return solution in the end. So here I'll show you guys what I mean. Let's actually just trace through this code because it's much easier to understand it if you know what the code is doing if you actually trace through it, okay. So here at the top part, I have vector vector int solution which is just a global variable representing the solution of all the nodes that we're gonna collect while we're removing them. So yeah, and then in the find leaves method, we just call recursively call get height passing in our root and then we return the solution that it collects from this method of collecting all the leaf nodes and then removing them and going to next step. So let's actually trace through each of these through each of the recursive steps of get height and then we'll be able to understand what we're doing, okay. So first of all, root right now is one, right? Because here root is the first one, first of our tree is one, right? This is the root, right? We're starting, the starting node is root, okay, here's root. So we pass in root into our get height function, okay? So in get height is the root null. No, it's not, right? Because first root is one, it's not null. So what do we do? We call get height again, but we're gonna pass in the left side. So here, if we were to go up to here, we're gonna call get height and we're gonna pass the left side. So this is get height, get height and we're gonna pass in the left side. So what is the left side? Roots left is two, right? Based on this picture, one, right? The one is a root, the left side is two. So we're gonna pass in two. So we're gonna pass in two here, okay? And then what we're also gonna do is we're going to pass, yeah. And then pass in two. The right side, get height H, right? For the right side, we're gonna pass in the right side. So that's gonna be three. So we're gonna get height three. So here we have two function calls that we just had. So here, I'm gonna just make sure you guys understand. So we have two function calls after passing in. So here's what happened. So we had get height passing in root. Get height root was one. So we pass in it and now we have two function calls. I'm just gonna show you guys this diagram so you guys can understand. So this is what the diagram is, okay? Get height one and get height three, okay? So this is left side, get height passing in two here. Left side and get height three is the right side, okay? Now, yeah. So for now, those values are gonna return some certain height and then we're gonna use that for the next value, but for now, that's what happens. Okay, so now let's just go through get height two. So in get height two, so we pass in this time two into our function. So it's two null, it's not, right? Two is not null, so we're not returning negative one. And what does it do? Now what it's gonna do, it's gonna call get height passing in the left side of two, which is gonna be four. And then we're gonna call get height passing in the right side which is gonna be five. So here, after this function call, this is actually gonna call, let me just minimize this real quick because this is too big. So let's actually make this smaller, okay? Whoa, now it's kind of pixelated. But yeah, here it's gonna pass in get height two, get height, so this is get height two.  Just get height four and then it's gonna pass in get height five, okay? All right, and then those are gonna return something and then they'll do something later after that. So now we're gonna just look at get height four. So what does get height four do?  So what it's gonna do is it's gonna pass in get height, four is left is gonna be null and four is right is also gonna be null. So it's gonna do get height null.  And then get height null, what does that do? So get height null is null, right? So they're gonna both return negative one. So here, both of these are gonna return negative one. So this is negative one, negative one is returned, negative one is returned here, okay? So when negative one is returned, it goes to this part of the line of code. So get current height, what is current height? What is the max of negative one and negative one? That's just negative one. And then negative one plus one is gonna be zero. So this whole thing gets returned with zero. So the current height here is gonna be zero. So this is gonna end up giving us zero. Current height is gonna equal to zero, right? Current height is gonna be zero, okay? Now, is the solution size equal to current height? Yes it is, right? So the current solution size right now, our solution size is a two-dimensional vector, right? They're both empty. It's like completely empty. So is the solution size equal to zero? Yes it is. So what we're gonna do is we're gonna push an empty array. So here, our solution size is now gonna get pushed an empty array. So it's gonna be like that, okay? Now what it's gonna do is that we're gonna use our current height of zero. Current height is zero. So at zero, solution zero, which is the first empty array, we're gonna push the current root. So what is the current root here? Current root is four, right? Current root is four because we went to the left side all the way down here and our current root is four, right? That's what this part of what we were doing. So it's gonna push four onto this. So this is that's, so it's gonna have four here now. Okay, and then what it's gonna do, what is it gonna do? It's gonna return current height. And the current height is zero, right? Remember, current height is zero in the calculation. So it's gonna return current height. So this whole thing of get height four is gonna return current height of zero. So I'm gonna actually remove this now. So get height four is gonna now have current height is zero. So let's actually just get rid of this so it's less confusing. So get height four is now gonna have, get height four gives us zero. Gives us zero, right? Current height zero. All right, so now we had get height four, right? Now we have to get height five, right? So what is get height five? So get height five is gonna call, recursively called get height on the left side, which is null, right? So five's left side here is null, right? Five's left side here is null and five's right side is null. So we're gonna pass and get height null for both of them. So here is gonna split into get height null. I'll just say get H null and get H null, right? Representing the left side and the right side. So yeah, so now since it's null, right? It's gonna return negative one. So both of these are gonna return negative one. Okay, so get height null and get height null on the left side and right side where we return negative one. So then what happens is that both of these are gonna return negative one. So what is the current height? So here current height is gonna equal to max of negative one, negative one and max of negative one, negative one is gonna be negative one, right? And negative one plus one will give us zero. So current height is gonna equal to zero. So both of these is gonna give us current height equal to zero. So this is gonna give us, let me just make this bigger. This gives us current height is gonna equal to zero, okay? So now is the solution size equal to current height? It's not, right? Our solution size has a size of one currently, right? With an array of four. So what are we gonna do? Solution at current height of zero is gonna push back the root's value. So since we recursively called on this get height of five, our root currently is gonna be five. So what we're just gonna do is it's gonna solution at current height of zero is gonna push back five. So this array at current height of zero is gonna have out of five here. So it's gonna append five here. So I'm gonna remove this. I'm gonna remove this and out of five, okay? Because that's what this function to get height did, right? The root's current value would be five because of get height of five, okay? So after we do that, we're gonna return current height. So this whole thing is gonna return current height of zero. So this whole thing returns current height of zero. So let's actually get rid of all this. Current height of five is gonna return, get height of five is gonna return zero. So here, zero, okay? Get height of five is gonna return zero. So now we have the left side of zero and zero. Okay, so here we have left side of get height four gives us zero, right side of get height two, five gives us zero also. This is kind of hard to read. This is get height two. I hope you guys remember get height two and just get height three, okay? But yeah, okay, now that we have this, we have left side of zero and right side zero. So here, what is the current height? What's the max of zero and zero? It's zero, so we plus one. This is current height is gonna equal to one now. So with both of these current height is equal to one. Current height equals to one, okay? Now is the solution size equal to current height? So our current solution size is just this one array, right? It's just this one thing, right? So yes it is. So what we're gonna do is we're actually gonna push back an empty array, right? Because our current height, our current solution size is just like one dimensional array and our current height is one. So we're gonna push back an empty array. So this is gonna have another empty array now. So now we have two arrays inside our solution, one with four, five and another one is empty array. Okay, now what it's gonna do is we're gonna do solution at current height, which is one. So solution at current height, which is like the newest array that we add, which we have, and then we're gonna push back the roots value. So what is our current roots value? Our current root value is two, right? Because this function called two called four and five. So this our current height here, our current root is two. So what it's gonna do is it's going to get the current height of this of one. We're gonna push add two. So this is gonna be two in here. So I hope you guys understand what we're doing. It's gonna have two in here. Push back two. And then we're gonna return current height. So then current height, this whole thing of get height two returns current height of one. So this whole thing of get height two is gonna return current height of one. So I'm actually gonna remove this and this. So let's just redraw this. I know it's kind of pixelated, but does get height two returns current height of one. So current height of one. So the number one, that's what it returns. Okay, so that's the left side of the left H. Now we have to look at the right side. So this is get height of three. So yeah, I know this is kind of hard to read.  Because that's kind of hard to read. Okay, so this is get height of three. Okay, so get height of three. What does this do? So get height of three. It's gonna recursively call get height on the left side and the right side. So three is left here. There is null, right? Because the left side, there's nothing there. And the right side is also nothing there. So it's gonna call get height on null. So this is gonna return get height, call get height on null. Get height on null, okay? And get height of null, what is that gonna do? Okay, so if we pass a null and the left and the right side, since the roots here values are now null, it's gonna return negative one. So here, both of these are gonna return negative one, negative one, negative one. And the current height that we're gonna get is the max of negative one, negative one plus one. So negative one, the max of negative one and negative one is gonna be negative one. And we add one, current height is gonna be zero. So this is gonna return, this is gonna have curr height is gonna be zero. Okay? So is the solution size equal to current height of zero? No, it's not, right? The solution size has a 2D array or a two-dimensional array with a size of two, right? So it's not equal to zero. So we're not gonna add a new array. But now what we're gonna do is we're gonna get solution at current height. So the current height is zero, right? And then what we're gonna do is we're going to push back the roots value. Okay, so solution at current height of zero is gonna push back roots value. So what is the current height? Current height is zero. So the first array, the first array that we look at in our solution array, we're gonna push back the roots value. So our current root is three because of the recursive calls on left side and the right side of get height of three. So what it's gonna do, it's gonna look at the current height of the first array here at current height of zero. And we're gonna add three to the first array. So here, the first array here at four or five, we're gonna add another value here and we're gonna push it and it's gonna be three. So here, now we add three here, okay? So I hope you guys understand what we're doing. Essentially what we're doing is we're gonna go through each of the heights and we're just gonna push corresponding values to it at each of the certain heights that we are at, okay? If that makes any sense. So like every time we go through like a surrounding leaf node, we're gonna push those values into one array and then the next leaf nodes, we're gonna push those values into the next array and so on and so forth, okay? That's essentially what we're doing. All right, so after this of pushing three onto the current height here, we're gonna return current height. So what is current height? It's zero, so it's gonna return zero. So get height of three is going to return zero. So here, this for get height of three, let's actually remove all both of this stuff, all these values. Current height, it's gonna return current height of zero. So here, let's remove this also because now it returns current height of zero. So current height is gonna equal to zero, okay? So now we have current height of one and current height is zero from the get height of two and three. So get height of two and three, now have those. So what is the current height now? So what is a max of height one and zero, right? Left side of one and the right side is zero. Well, that's one, right? Max of one and zero is one. So then now we do current, yeah, current height is gonna equal to one plus one. So that's gonna return, both of these are gonna return one plus one is gonna give us two. So this is current height is two, okay? And yeah, so now is the solution size equal to current height of two? Yes, it is because there's two arrays in our solution. So what it's gonna do now is it's going to push back an empty array onto it. So now we're gonna push back an empty array of this, which is just an empty array here. And yeah, now it's pushed back an empty array here. Now what we're gonna do is we're gonna do solution at current height of two. So that's gonna be the new array that we just added since our current height is equal to two. So that'll be zero, one, two, right? The new array that we added. And we're gonna push back whatever our root is. So since our root was now one, because it's the recursive call of starting of one after all these return statements, it's we're gonna push one onto this new array here. Bam, okay, so now that's there. And then after that, we're gonna return current height, which is gonna be two. Okay, so that this current height is gonna get returned. And then this whole thing gets returned, get height of one would get returned of height two. So we're gonna go here, move all this, and it's gonna return current height of two, current height of two, okay? That's what get height of one does. So now after this whole thing gets returned, we don't actually need that, the height value, so we're just gonna ignore it. And since we already added all the values into our solution array here, we're just going to return solution. So this gives us our answer in the end, okay? So I hope you guys understand what's going on. Essentially what we're doing is that we're going to, every time you go through a new leaf, we're gonna add those values based on the corresponding height into its corresponding yeah, based on this corresponding height, add it into our solution array, okay? So whichever height that has starting from whichever node it is, right? We're gonna have that be added into its corresponding array. So essentially what it's doing is like, we look at the leaves here, four, five, three. Since both of all these values have a height of zero because if we look at this, the root here, there's no, there are nothing there, right? There's like leaves there or have like, there's no, there's no children of each of these four, three, five and three. So what it's doing is that once it gets the heights of each of these values of the leaf nodes, it's gonna add it to its corresponding array inside our solution, 2D solution array. So at that certain index of that certain height of two of no children height, right? We're gonna just add that into that array. So that's why those leaves gets added of four, five and three gets added into the first of size zero. And then since if we look at two's height here, two's height has a height of one because there's no, because there's children of two. So in our solution array, if we put two as, we put the number two into the solution of height into the solution array of at height one, okay? And then for one, we put one's solution, the node one into the solution array at height two, okay? Because of that's, because from the starting positions. So yeah, in the end our solution is gonna have the exact corresponding values at the right location based on each of the nodes height, okay? We're basically storing each of the nodes in its corresponding height in our solution array. That's what we're doing if that makes any sense. So yeah, yeah. So that's just tracing through all this whole code. I hope you guys understand what I'm doing here. I know it's kind of confusing, but it is, what we're doing is we're just going through each of the leaves and putting them into the corresponding new array and then based on their heights. And then we go to the next one and put it into the corresponding array. But yeah, I hope you guys enjoyed this video. Rate, comment, subscribe. I'll check you guys later. Peace.


All measurements are subject to error. All measurements are subject to the specificity of the tool I'm using to measure it. Maybe I just used a school ruler, and I guessed that it was 0.375. That was my estimation. Then there's this sort of group of fallacies that he refers to as fruit packing, right? There's different ways that you can package fruit. And this is kind of a grocers trick. If you have old fruit that you wanna sell, how do you do it, right? So, one thing you can do is you can do cherry picking. Classic selection bias. You find the studies that confirm what you think is going to be true. You find the subjects who are susceptible to the kinds of intervention effects that you want to prove. You only choose the bright, shiny cherries to put out in front so that people will grab the bunches and then put them in their cart and take them home and realize that the other half are rotten, right? You pick out the cherries that are particularly shiny and juicy and good for what you want them to say to the person, in this case, the client buying the cherries. This happens all the time. Medical research is riddled with this kind of thing. Exercise research is riddled with this kind of thing. People are incredibly susceptible to wanting to find the information, the kind of confirmation bias that agrees with their preordained conclusions, right? James was telling me one of his students, one of his second year students, I think, they wanted to run this trial and they were asking him about all the kinds of statistical techniques they could do with it and all these other things. And he said, but you haven't run the research yet. And they said, yeah, yeah, but we wanna know how we're gonna manipulate the data once we get the data. And he said, no, no, you have to wait for the data and then understand the data and then decide whether to run certain tests on it. You know, you can't actually pre-program, oh, I'm gonna use this really cool technique. Well, do you need to? I don't know. So, another one, of course, comparing apples to oranges. Otherwise, sometimes known as the regression bias. Regression to the mean, right? A lot of times people look at intervention effects without recognizing that the sole intervention effect is going to actually be an outlier or it's just gonna be on the higher range or the lower range of what they're looking for. This happens in education. This is a classic, classic school superintendents problem. You're in a district, test scores are falling, educational outcomes are falling, parents are getting mad. So they throw the guy out, the new guy comes in. The new guy looks at the test scores and says, oh, man, our kids can't read and write.  And I'm gonna say, this is gonna improve results. And so they contract with the testing company, they write up a new test and they test the students claiming to be able to compare these scores to the old scores and guess what, they're higher. But if you test the students year after year after year on the same metric, they're gonna come back down to the mean. You may get a year when they go higher, you may get a year when they go lower, but guess what, those students, just because you're testing them differently and you're using some hokey program, unless you're fundamentally changing something, all you're doing is comparing apples to oranges. And this happens all the time in, as I said, in all sorts of health related, medical related research. It's very, very easy to say, oh, this group, very small, very isolated, very selected, had this result and therefore it's going to apply to this group. You see this all the time, and not the least of which is mice or lab rats or whatever, comparing to humans, but even different groups of humans, with different ages, different profiles, et cetera. And then the last one, which he calls apple polishing. This is just distortion bias, right? This is just where you shine up the numbers, you put some fancy charts in, you do things to make them look a lot bigger or more significant. Famous cases are where they just adjust the axes on a graph. This is the very famous cholesterol intervention with a particular drug, cholesterol intervention showed dramatic results. When you realize that the scale on the left actually was going by tenths rather than whole numbers, wow, you know those bars went way down every time, but in reality in terms of the actual variation, it was like that, right? The chart doesn't even change because they've adjusted the numbers to make the bars look way different. Or sometimes you notice, this is the funniest thing, I see this in journals sometimes, they put a very, very, very small note that they've done it on a logarithmic scale.  I mean, it's how you're presenting the data. So the fundamental, of course, which probably, I hope at least a lot of you know, is that people mistake the problem of accuracy for the problem of precision, right? And then even that people fundamentally don't understand what precision is. Pull this off of Wikipedia, it's pretty good show illustration of accuracy and precision. Accuracy just simply means, are you actually getting the correct value? If there were some disembodied, perfect way, perfect world way of knowing. Now, if you say, if I gave a bunch of my students in a physics class, I gave them pots of water and I said okay, go determine what the boiling temperature of water is. Okay, under standard pressure and other conditions. I'm pretty sure I know what the reference value is. Right now it does depend, there are some variations for anybody that's thermal physics knows that there are some variations in the shape and the composition of the material. But if I give them a standard set of things in which to boil water and ask them with fairly accurate thermometers, I know what temperature water's going to boil at. Now if I have five of the kids in different teams come up to me and they all tell me that water boils at 108 degrees Celsius. One of them says 108.2, 107.9, 108, 108.1. That's a lot of precision. But it looks like my thermometers might be off by about eight degrees. Versus accuracy, which is a representation of is it actually getting the correct answer? Precision can be an illusion. Precision simply means repeatability of results. But if you've distorted something, if you have measurement error, if you're doing the same characteristic thing wrong over and over again, you're gonna get a lot of repeatability. It's like the, I put it up later, it's like the Texas sharpshooter fallacy. A guy out in Texas is bored, so he shoots up his barn one afternoon. Then he decides, wow, there's a nice little group right there where all the bullets are pretty close together. Then he goes out there and he paints a target with that as the bullseye. And he said, look how good a shot I am. And all of his friends say, oh yeah, you're a pretty good shot. All those bullseyes you hit. Now, of course, he just shot the gun randomly. Some of them happened to group together and he puts the target there. Precision can be an illusion, okay? Now, this has real-life consequences. You say, oh, this seems awfully academic. What are the real-life applications? Well, for people interested in optimal health, people interested in optimal exercise programs, people interested in maximizing these things about themselves, guess what? Blood tests, research studies, things that you do to try to find out what's best for you have these problems, measurement errors, precision problems. Now, you think blood tests. I know a guy, he's one of these biohacker guys, and I've talked to Jolly about this, and there are people who run their blood work like every month, and they run their blood work and as soon as they see something wrong, they act. As soon as something's out of range or what they consider to be a range, they act. And they completely ignore the fact that these blood tests have certain sensitivity. The kinds of changes that they may be noting are actually smaller than what the blood test is gonna run on a time-after-time-after-time basis. They may not understand the kind of variation that comes in with which lab you send it to. So this great example, the patient goes to the doctor, doc, my self-stocker 5,000 app has detected I have pre-diabetes, and then the caption says, one day, the over-monitoring alert of Dr. Abbott's monitoring monitor became quite hysterical. The problem is that if you fall prey to the illusion of precision, the potential consequences are you get a lot of false positives. If you don't actually understand what those tests are doing, what they can measure, how precisely they can measure it, and whether or not those measurements are repeatable. The best example of this, you're gonna take your blood, you're gonna have, let's say, some of the guys might be concerned about it, you're gonna test your testosterone. Notoriously difficult to measure if you actually know what's going into measuring free and testosterone in the blood. It varies by time of day, it varies by stress level. It can vary even a lot, just by which lab you have it sent to to do the assay. So you get a lot of false positives, and then you act on those. That's the heuristic.   Well, guess what? You might not actually have that condition. You don't have repeatability, and you don't even know what accuracy is yet. Another problem, you may find idiopathic conditions. You may find variations in your blood work, you may find variations in your response to stimulus in a training program or a diet program or whatever that actually is something very, very highly unique to you. All of these tests that have reference values, those reference values are literally just the lab's averages over the human population. You may actually run a little bit hot. You may run a little bit cold on some of these measures, as so to speak, not literally temperature, but your blood work may actually just naturally be higher or lower because some variation in your genetic makeup, some variation in how you function, so you're gonna find some idiopathic condition that you try to treat that actually isn't causing you any problem.   The doc does something, it's the wrong thing and it makes you worse, right? These are the worst kind of intervention effects.  You're gonna be chasing the problem that's been created, not by any organic condition, but by the doctor or the practitioner themselves. So this is a real problem. You have to be very careful about using numbers, using statistics. Of all the heuristics, of all the biases that humans have, statistics, risk, probability, all these things are very, very difficult for people to have the proper intuitive sense because in a sense, our brains are not designed for this in today's world. So another illusion, the illusion of authority, right? This is a pretty easy one. You put a brain scan into a research paper, people are more likely to believe the results. You can have the exact same text. You can have text that says that in sophisticated language that says that the research doesn't actually have any findings, put a brain scan in it and people will believe it. Right, the text basically says, yeah, we didn't really find anything statistically significant, we didn't find anything, but the headline, brain scan, boom, people believe. Oh, if I eat more carrots, my brain will be healthier, whatever, right? Just graphs alone, right? Just bar charts alone in research papers, in news articles, will give the illusion that something sciencey is going on. Don't fall prey to this. Just because someone can quantify something doesn't mean that they have anything good to say. I actually pulled this, this is funny, this graph. I pulled this off of, I was just looking for public domain bar charts. I happened to find this one. This was on a website of a woman who's apparently a science fair consultant. All she does is hire herself out for probably hundreds of dollars to kids who are working on science fair projects. I thought, man, that's a racket. I need to get into this. This chart says, oh, you can present the data one way or the other way, and I recommend that you present it this way because it gives more drama between the two variables. I don't even know what the research is. It's something about the difference between coffee and water. The worst kind of sciencey stuff that you see today, infographics.  I mean, they're beautiful. Sometimes they're really, really creative, but I pulled this one just for James because this happens to be about the number of UK health clubs and gyms, and they've got this guy doing a bench press and they've got all of these weights out here that are used to represent the numbers in the size of the plates or the size of the barbells or dumbbells or whatever represents different variables. I looked at this chart. I figured out maybe five or six different conclusions that I could reach based upon the data presented here. Now, those conclusions were contradictory. In one conclusion, I say, oh, Brits are getting healthier because there's obviously more gym memberships being sold. Another one, I said, oh, private memberships are on the way down and more people are going to public gyms because there's a different change in the ethos of British working out that it's a more public thing and people are becoming more concerned about it. Or, oh my God, the absolute number of gyms is dropping and so therefore Brits are no longer concerned about their health, no wonder we're all fat. You can come up with whatever conclusion you want because you just present this data and it looks kind of fancy. So don't fall prey to this. The illusion of authority, forget about reading medical journals. Oh, well maybe I'll just go to the experts. I want the experts to tell me what's best for me. Well, unless you're ready to become fluent in how to understand research design, how to understand statistics, how to understand epidemiology, how to be super critical of the fact that I don't know what John Ioannidis says. Over 50% of medical research is basically bunk. Published medical research can't be replicated. Statistical methods are so bad that the paper is so riddled with errors. And yet people who reports this stuff, the media. What do they say about it? They tell you, oh my gosh, Dr. Oz says do this and you'll burn fat, do this and you'll do that. This is what they call the Murray-Gellman amnesia effect. This is actually something that Crichton came up with, John Crichton. Murray-Gellman was a famous theoretical physicist, won the Nobel Prize in the 60s, and Crichton actually named this effect for him because he said I had a conversation with him about it once and he's much more famous than I am so I named it after him because it'll give it a lot more authority, kind of as a joke. But the Murray-Gellman effect is described basically by Crichton as the following. You're reading the morning newspaper. You come across an article.  Wet streets cause rain, right? I mean they literally have cause and effect backwards and you think to yourself, what a fool, right?  And then you turn to the next page and you trust what they have to say, the same paper, the same journalist, you trust what they have to say about the state of the world in the Middle East or you trust what they have to say something else. The Murray-Gellman effect, think about Muscle magazines. One convention returning speaker from Austin, Texas, 2012 and actually Anthony Johnson, the CEO of the 21 convention said it's one of his favorite speeches, the Austin, Texas one. And let's hope this one is two. Eric Daniels, let's do it. All right. Thanks. All right guys, hopefully you're fully caffeinated, ready to go, the two systems model, okay? And this is basically what I'm talking about with the two ways that you can forget about the auto regulation of the brain. That's primarily what the brains work. Once you start thinking, there's really two systems he says that you can think incredibly, incredibly distorting. So one of these is the illusion of precision. Had this result and therefore it's going to apply to this group, right? You see this all the time and not the least of which is mice or lab rats or whatever comparing to humans but even different groups of humans with different ages, different profiles, et cetera. Burns Businesses to Great Businesses published this book, claimed that he understood everything that the CEOs and leadership teams did to make them great, published the book, made lots of money, and guess what?